import Mock from 'mockjs'
//延时200-600毫秒请求到数据
Mock.setup({
	timeout: '200-600'
})

const Random = Mock.Random;
// 用户总览
function countUserNum() {
	const a = Mock.mock({
		success: true,
		data: {
			offlineNum: '@integer(1, 100)',
			lockNum: '@integer(1, 10)',
			totalNum: 218
		}
	})
	a.data.onlineNum = a.data.totalNum - a.data.offlineNum - a.data.lockNum
	return a
}

// 接口，第一个参数url，第二个参数请求类型，第三个参数响应回调
Mock.mock(new RegExp('countUserNum'), 'get', countUserNum)

//门店拿货显示
function shipment() {
	const a = Mock.mock({
		success: true,
		data: {
			"list|28-200": [
				['@city()门店拿了@integer(10, 100)数量的@ip()产品']
				// {
				// 	store: "@city",
				// 	num:'@integer(100, 10000)',
				// 	product:'@ip'
				// }
			]
		}
	})
	return a
}

Mock.mock(new RegExp('shipment'), 'get', shipment)

// /设备总览 

function countDeviceNum() {
	const a = Mock.mock({
		success: true,
		data: {
			alarmNum: '@integer(100, 1000)',
			offlineNum: '@integer(0, 50)',
			totalNum: 698
		}
	})
	a.data.onlineNum = a.data.totalNum - a.data.offlineNum


	return a
}

Mock.mock(new RegExp('countDeviceNum'), 'get', countDeviceNum)

// /设备总览 

function sbtx() {
	const a = Mock.mock({
		success: true,
		data: {
			"list|20": [
				{
					provinceName: "@province()",
					cityName: '@city()',
					countyName: "@county()",
					createTime: "@datetime('yyyy-MM-dd HH:mm:ss')",
					deviceId: "6c512d754bbcd6d7cd86abce0e0cac58",
					"gatewayno|+1": 10000,
					"onlineState|1": [0, 1],

				}
			]
		}
	})
	return a
}

Mock.mock(new RegExp('sbtx'), 'get', sbtx)



//中间地图

function centermap(options) {
	let params = parameteUrl(options.url)
	if (params.regionCode && params.regionCode != -1) {
		const a = Mock.mock({
			success: true,
			data: {
				"dataList|30": [
					{
						name: "@city()",
						value: '@integer(1, 1000)'
					}
				],
				regionCode: params.regionCode,//-代表中国
			}
		})
		return a
	} else {
		const a = Mock.mock({
			success: true,
			data: {
				"dataList|8": [
					{
						name: "@province()",
						value: '@integer(1, 1000)'
					}
				],
				regionCode: -1,//-代表中国
			}
		})
		return a
	}

}

Mock.mock(new RegExp('centermap'), 'get', centermap)

// 报警次数

function alarmNum() {
	const a = Mock.mock({
		success: true,
		data: {
			dateList: ['2021-11', '2021-12', '2022-01', '2022-02', '2022-03', "2022-04"],
			"numList|6": [
				'@integer(0, 1000)'
			],
			"numList2|6": [
				'@integer(0, 1000)'
			]
		}
	})
	return a
}
Mock.mock(new RegExp('alarmNum'), 'get', alarmNum)

// 实时预警

function ssyj() {
	const a = Mock.mock({
		success: true,
		data: {
			"list|40": [{
				alertdetail: "@csentence(5,10)",
				"alertname|1": ["水浸告警", "各种报警"],
				alertvalue: "@float(60, 200)",
				createtime: "2022-04-19 08:38:33",
				deviceid: null,
				"gatewayno|+1": 10000,
				phase: "A1",
				sbInfo: "@csentence(10,18)",
				"terminalno|+1": 100,
				provinceName: "@province()",
				cityName: '@city()',
				countyName: "@county()",
			}],

		}
	})
	return a
}
Mock.mock(new RegExp('ssyj'), 'get', ssyj)
//安装计划 
function installationPlan() {
	// let num = RandomNumBoth(26, 32);
	let num = 6
	const a = Mock.mock({
		"month": ["1月","2月","3月","4月","5月","6月"],
		["category|" + num]: ["@city()"],
		["barData|" + num]: ["@integer(1000, 100000)"],
	})
	let lineData = [], rateData = [];
	for (let index = 0; index < num; index++) {
		let lineNum = Mock.mock('@integer(0, 100)') + a.barData[index]
		lineData.push(lineNum)
		let rate = a.barData[index] / lineNum;
		rateData.push((rate * 100).toFixed(0))
	}
	a.lineData = lineData
	a.rateData = rateData
	return {
		success: true,
		data: a
	}
}
Mock.mock(new RegExp('installationPlan'), 'get', installationPlan)




//报警排名 
function ranking() {
	//多生成几个避免重复 重复会报错
	let num = Mock.mock({ "list|48": [{ value: "@integer(50,1000)", name: "@city()" }] }).list
	//   console.log(num);
	let newNum = [], numObj = {}
	num.map(item => {
		if (!numObj[item.name] && newNum.length < 8) {
			numObj[item.name] = true
			newNum.push(item)
		}
	})
	let arr = newNum.sort((a, b) => {
		return b.value - a.value
	})
	let a = {
		success: true,
		data: arr
	}
	return a
}
Mock.mock(new RegExp('ranking'), 'get', ranking)
/**
 * @description: min ≤ r ≤ max  随机数
 * @param {*} Min
 * @param {*} Max
 * @return {*}
 */
function RandomNumBoth(Min, Max) {
	var Range = Max - Min;
	var Rand = Math.random();
	var num = Min + Math.round(Rand * Range); //四舍五入
	return num;
}
/**
 * @description: 获取路径参数
 * @param {*} url
 * @return {*}
 */
function parameteUrl(url) {
	var json = {}
	if (/\?/.test(url)) {
		var urlString = url.substring(url.indexOf("?") + 1);
		var urlArray = urlString.split("&");
		for (var i = 0; i < urlArray.length; i++) {
			var urlItem = urlArray[i];
			var item = urlItem.split("=");
			console.log(item);
			json[item[0]] = item[1];
		}
		return json;
	}
	return {};
}
